package heven.holt.library.initializer.startup

import android.app.Application
import android.content.Context
import com.xiaojinzi.component.Component
import com.xiaojinzi.component.Config
import heven.holt.library.BuildConfig
import heven.holt.library.startup.AndroidStartup

class ComponentStartUp : AndroidStartup<Any>() {
    override fun create(context: Context): Any? {
        Component.init(
            BuildConfig.DEBUG,
            Config.with(context as Application)
                .defaultScheme("router")
                //使用内置的路由重复检查拦截器，如果为true，
                //那么当两个相同的路由发生在指定的时间内后一个路由就会被拦截
                .useRouteRepeatCheckInterceptor(true)
                //router初始化是否采用异步
                .initRouterAsync(true)
                //是否进行错误检查
                .errorCheck(true)
                //1000是默认的，表示相同路由拦截的时间间隔
                .routeRepeatCheckDuration(1000)
                //是否打印日志提醒你哪些路由使用了Application为Context进行跳转
                .tipWhenUseApplication(true)
                //通知模块变化的延迟时间
                .notifyModuleChangedDelayTime(0)
                //开启启动优化，必须配套使用Gradle插件
                .optimizeInit(true)
                //自动加载所有模块，依赖上面的optimizeInit(true)
                .autoRegisterModule(true)
                //执行构建
                .build()
        )
        return null
    }

    override fun callCreateOnMainThread(): Boolean = true

    override fun waitOnMainThread(): Boolean = false
}